package game.graph;

import java.awt.Color;
import java.awt.Dimension;
import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JTextArea;

import biblioes.ArchivoPuntaje;

/**
 * Esta clase se encarga de mostrar en base a un archivo de niveles
 * levantado del directorio, los datos en la ventana correspondiente.
 *
 */

public class MostrarPuntajes extends JFrame {

	private static final long serialVersionUID = 1L;

	JTextArea areaTexto;
	
	/**
	 * Constructor de la clase, retorna una instancia de la clase, que es
	 * la que realiza el trabajo de transferir los datos a un formato
	 * comodo para que el usuario los pueda ver.
	 * 
	 */
	
	public MostrarPuntajes() {
		setLayout(null);
		setSize(new Dimension(300,400));
		setLocation(500, 200);
		setTitle("Mejores puntajes");
		setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
		String[] puntajes = null;
		
		areaTexto = new JTextArea("Puntos del nivel: ");
		areaTexto.setBounds(0, 0, 300, 400);
		JFileChooser selector = new JFileChooser("./archivos");
		selector.showOpenDialog(MostrarPuntajes.this);
		File puntaje = selector.getSelectedFile();
		
		try {
			if(puntaje == null) {
				setVisible(false);
				return;
			}
			setVisible(true);
			puntajes = ArchivoPuntaje.cargarPuntaje(puntaje);
			areaTexto.append("\n");
			areaTexto.setBackground(Color.WHITE);
			areaTexto.append(puntajes[0] + ":");
			areaTexto.append("\n");
			for(int i = 1; i < puntajes.length && puntajes[i] != null; i++) {
				areaTexto.append("\n");
				String[] partes = puntajes[i].split(" ");
				areaTexto.append(partes[0] + "\t" + partes[1] + "\t" + partes[2]);
			}
			this.setContentPane(areaTexto);
		} catch (Exception e) {
			setVisible(false);
			String mensaje = "<html>El archivo seleccionado no se<br>" +
			 				 "corresponde con uno de tipo nivel</html>";
			new MensajeFrame(mensaje);
		}

	}

}
